
var app = {
	module: {
		loading: false,
		min_weibo_id: 0,
		max_weibo_id: 0,
		refresh_timer: 0
	},
	view: {},
};

app.load = function()
{
	if (app.module.loading)
	{
		return;
	}

	$.get("/api/weibo/initialize", {uid: app.module.uid}, function(result){
		if (!result.error)
		{
			if (result.weibos.length > 0)
			{
				app.module.min_weibo_id = result.weibos[result.weibos.length-1].id;
				app.module.max_weibo_id = result.weibos[0].id;
			}

			app.module.refresh_timer = setInterval(app.refresh.bind(app), 300000);
		}

		app.view.onload(result);
		app.module.loading = false;
	}, "json");
	app.module.loading = true;
};

app.refresh = function()
{
	if (app.module.loading)
	{
		/* FIXME: 是不是应该将本refresh()排入到待操作的队列中？而不是简单的忽略之 */
		return;
	}

	$.get("/api/weibo/refresh", {uid: app.module.uid, min_weibo_id: app.module.max_weibo_id}, function(result){
		if (!result.error)
		{
			if (result.weibos.length > 0)
			{
				app.module.max_weibo_id = result.weibos[0].id;
			}
		}

		app.view.onrefresh(result);
		app.module.loading = false;
	}, "json");
};

app.loadmore = function()
{
	if (app.module.loading)
	{
		/* FIXME: 是不是应该将本loadmore()排入到待操作的队列中？而不是简单的忽略之 */
		return;
	}

	$.get("/api/weibo/loadmore", {uid: app.module.uid, max_weibo_id: app.module.min_weibo_id}, function(result){
		app.module.cache.weibos = app.module.cache.weibos.concat(result.weibos);
		if (result.weibos.length > 0)
		{
			app.module.min_weibo_id = result.weibos[result.weibos.length-1].id;
		}

		app.view.onloadmore(result);
		app.module.loading = false;
	}, "json");
};

app.init = function()
{
	/* 主要是响应weibo认证回调页面报送的认证结果消息 */
	$(window).on("message", function(evt){
		// console.log("main page: new message: %s", evt.originalEvent.data);

		var result = JSON.parse(evt.originalEvent.data);
		if (result.error)
		{
			alert(result.error);
		}
		else
		{
			app.module.uid = result.uid;
			app.load();
		}
	});

	app.load();
};

$(document).ready(function(){

app.view.init();
app.init();

});